Making Software Refactorings Safer
نویسندگان
چکیده
Refactorings often require that non-trivial semantic correctness conditions are met. IDEs such as Eclipse’s Java Development Tools rely on simpler, static precondition checks for refactorings. This leads to the phenomenon that a seemingly innocuous refactoring can change the behavior of the program. In this thesis we demonstrate our technique of introducing runtime checks of two particular refactorings for the Java programming language: Extract And Move Method, and Extract Local Variable. These checks can, in combination with unit tests, detect changed behavior and identify the refactoring step that introduced it.
منابع مشابه
Making Programmers Aware Of Refactorings
Modern integrated development environments, such as ECLIPSE, provide automated or semi-automated refactoring support. Despite this support, refactorings are often done manually — either because the developer is not aware of the tool support or because he is not aware that what he did was a refactoring. Moreover, as we found in [7] programmers tend to do a bad job in documenting the refactorings...
متن کاملRefactoring Meets Spreadsheet Formulas
The number of end-users who write spreadsheet programs is at least an order of magnitude larger than the number of trained programmers who write professional software. We studied a corpus of 3691 spreadsheets and we found that their formulas are riddled with the same smells that plague professional software: hardcoded constants, duplicated expressions, unnecessary complexity, and unsanitized in...
متن کاملAlgebraic Laws for Feature Models
Software Product Lines (SPL) may be adopted by either bootstrapping existing software products into a SPL, or extending an existing SPL to encompass an additional software product. Program refactorings are usually applied for carrying out those tasks. The notion of SPL refactoring is an extension of the traditional definition of refactoring; it involves not only program refactorings, but also F...
متن کاملA Framework for an Adaptive Refactoring Tool
Refactoring is the process of making changes to the internal structure of existing code without changing the external behavior of that code. The resulting code is more flexible, reusable, and maintainable. While refactoring is becoming more popular in the software development community, manual refactoring can be a long and tedious process. Tools that support refactoring are becoming available; ...
متن کاملA Genetic Algorithm for Automated Refactoring of Component-Based Software
Nowadays a software undergoes modifications done by different people to quickly fulfill new requirements, but its underlying design is not adjusted properly after each update. This leads to the emergence of bad smells. Refactoring provides a de facto behavior-preserving means to eliminate these anomalies. However, manually determining and performing useful refactorings is known as an NP-Complet...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2016